The use of a given software application or computer program in a computer system is generally managed under license, with the license allocating particular rights of use to a specific computer system. However, occasions of illegal use of software applications and computer programs are common, and there exists a significant problem over monitoring the authorized use of a software application or computer program in a computer system, particularly in a computer system in which the software applications and/or hardware devices are subject to change over time.
EP-1469369 discloses a system for generating a hardware identification for a given computer system for use in controlling the operation of software applications on the computer system in dependence upon the level of change occurring in the hardware of the computer system. When a new software product is initially loaded onto the system, the hardware configuration of the computer system is identified and a hardware identification is generated and stored for future use. This hardware identification takes account of every hardware device within each class of hardware devices in the computer system and generates a corresponding hardware identification representing the instant computer hardware configuration. On subsequent reloading of the software product, for any reason, a new hardware identification is generated in the same manner and the new hardware identification is compared with the initial hardware identification, in order to determine whether or not further use of this software program should be permitted or prevented.
Such a known system has a number of disadvantages, including particularly complexity and lack of versatility. For example, the need to check and identify each and every hardware device within each class of hardware device in the computer system in order to establish the hardware identification renders the process of generating the hardware identification laborious and time consuming. Furthermore, the known system monitors only the hardware within the computer system and takes no account of the software, and this is an inherent limitation.
There is thus a need for a more versatile system for controlling the use of both software and hardware components within a computer system.